﻿using LJ.EventBus.FastDog.Transport.Abstractions;
using LJ.EventBus.FastDog.Transport.Abstractions.Pack;
using LJ.EventBus.FastDog.Transport.InMemoryQueue.Internal;
using Microsoft.Extensions.DependencyInjection;

namespace LJ.EventBus.FastDog.Transport.InMemoryQueue.Pack;


public abstract class EventBusFastDogTransporInMemoryQueuePackBase : PackBase, IEventBusFastDogTransportPack
{
    public override void Add(IPackContext packContext)
    {
        packContext.DependencyManager.ServiceCollection.AddSingleton<MemoryQueue>();
        packContext.DependencyManager.ServiceCollection.AddSingleton<IConsumerClientFactory, InMemoryQueueConsumerClientFactory>();
        packContext.DependencyManager.ServiceCollection.AddSingleton<ITransport, InMemoryQueueMessageSender>();
    }

    public override void Use(IPackProvider packProvider)
    {
    }
}
